//
// Created by Administrator on 2025/6/22.
//

#include "led.h"

static LED_CONFIG_T led_config[] = {
        {RCU_GPIOD, GPIOD, GPIO_PIN_4},  // 1
//        {RCU_GPIOD, GPIOD, GPIO_PIN_5},  // 2 , conflict with USART1
        {RCU_GPIOG, GPIOG, GPIO_PIN_3}, // 3
};

void led_init(void) {

    for (int32_t i = 0; i < sizeof(led_config) / sizeof(LED_CONFIG_T); i++) {
        /* enable the led clock */
        rcu_periph_clock_enable(led_config[i].gpio_clk);
        /* configure led GPIO port */
        gpio_mode_set(led_config[i].gpio_port, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, led_config[i].gpio_pin);
        gpio_output_options_set(led_config[i].gpio_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, led_config[i].gpio_pin);

        GPIO_BC(led_config[i].gpio_port) = led_config[i].gpio_pin;
    }
}


void led_breath(uint8_t light_on) {
    for (int32_t i = 0; i < sizeof(led_config) / sizeof(LED_CONFIG_T); i++) {
        if (light_on) {
            GPIO_BOP(led_config[i].gpio_port) = led_config[i].gpio_pin;
        } else {
            GPIO_BC(led_config[i].gpio_port) = led_config[i].gpio_pin;
        }
    }
}